В шаге 21 мы рассмотрели 2 вида рисования линий: обычный и в режиме strip. В этом очень маленьком примере мы рассмотрим еще 1 вид линии - режим loop.
Режим loop отличается от режима strip только тем, что последняя вершина автоматически будет соединена с первой. Рассмотрим пример. Создайте как обычно проект и функцию OnDraw сделайте такой:
void CExampleView::OnDraw(CDC* pDC)
{
CRect clientRect;
CExampleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
GetClientRect(&clientRect);
glViewport(0, 0, clientRect.right, clientRect.bottom);
glClearColor (0.5, 0.5, 0.75, 1.0); // цвет фона
glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета
glLineWidth (20); // размер точек
glColor3f (1.0, 0.0, 0.5); // текущий цвет примитивов
glBegin (GL_LINE_LOOP);
glVertex2f(0,0.5);
glVertex2f(0.5,-0.5);
glVertex2f(-0.5,-0.5);
glEnd();
}
Если бы мы указали вместо GL_LINE_LOOP режим GL_LINE_STRIP, то получили бы просто угол, а если указать GL_LINES, то всего лишь одну прямую, третья точка была бы игнорирована библиотекой. Попробуйте поэкспериментировать сами.